/*/{Protheus.doc} SYNCENV
E a User Function que retorna array com dados do ambiente e do layout a ser gerado
@author Elton Teodoro Alves
@since 14/11/2014
@version P11 R5
@Param aParam,Array,Array passado por default pelo schudele com:</br> aParam[1] = Codigo da Empresa</br> aParam[2] = Codigo da Filial</br> aParam[3] = Codigo do Usuario</br> aParam[4] = Codigo do Agendamento + Codigo da Tarefa
@Param cLayout,Caracter,Codigo do Cadastro do Layout Synchro a ser gerado, para buscar os parametros do mesmo
@Param cPeriod,Caracter,Periodicidade do Layout D - Diaria e M - Mensal
@Return Array Array com dados da empresa que ira gerar o layout e os parametros do cadastro do layout
@Example
Layout do Array de Retorno:</br>
</br>
<table>
<tr><th> POSICAO </th><th> TIPO </th><th> DESCRICAO                                               </th></tr>
<tr><td> [01]    </td><td> C    </td><td> Empresa definida no schudele                            </td></tr>
<tr><td> [02]    </td><td> C    </td><td> Filial definida no schuidele                            </td></tr>
<tr><td> [03]    </td><td> C    </td><td> Usuario definido no Schudele                            </td></tr>
<tr><td> [04]    </td><td> C    </td><td> Agenda e Tarefa no Schudele                             </td></tr>
<tr><td> [05]    </td><td> C    </td><td> Codigo do Layout                                        </td></tr>
<tr><td> [06]    </td><td> L    </td><td> Dados foram resgatados com sucesso T/F                  </td></tr>
<tr><td> [07]    </td><td> A    </td><td> Array da lista de Filiais                               </td></tr>
<tr><td> [08]    </td><td> C    </td><td> Periodicidade do Layout                                 </td></tr>
<tr><td> [09]    </td><td> C    </td><td> Proxima referencia do Layout                            </td></tr>
<tr><td> [10]    </td><td> C    </td><td> Lista de Filiais do Layout                              </td></tr>
<tr><td> [11]    </td><td> C    </td><td> Endereco do FTP                                         </td></tr>
<tr><td> [12]    </td><td> C    </td><td> Login do FTP                                            </td></tr>
<tr><td> [13]    </td><td> C    </td><td> Senha do FTP                                            </td></tr>
<tr><td> [14]    </td><td> C    </td><td> Pasta do FTP onde o arquivo sera salvo                  </td></tr>
<tr><td> [15]    </td><td> C    </td><td> Email de Envio do arquivo de LOG                        </td></tr>
<tr><td> [16]    </td><td> C    </td><td> Numero Sequencial do Layout                             </td></tr>
<tr><td> [17]    </td><td> C    </td><td> Descricao do Layout                                     </td></tr>
<tr><td> [18]    </td><td> N    </td><td> Porta FTP                                               </td></tr>
<tr><td> [19]    </td><td> C    </td><td> Codigo do Layout                                        </td></tr>
<tr><td> [20]    </td><td> N    </td><td> Dias de Armazenamento de arquivos gerados para o layout </td></tr>
</table>
</br>
Detalhamento da Posicao [07] referente ao array com a Lista de Filiais</br>
</br>
<table>
<tr><th> POSICAO </th><th> TIPO </th><th> DESCRICAO                      </th></tr>
<tr><td> [01]    </td><td> C    </td><td> Codigo da Filial               </td></tr>
<tr><td> [02]    </td><td> C    </td><td> CNPJ da Filial                 </td></tr>
<tr><td> [03]    </td><td> C    </td><td> Sufixo do CNPJ da Filial       </td></tr>
<tr><td> [04]    </td><td> C    </td><td> Prefixo dos Produtos da Filial </td></tr>
<tr><td> [05]    </td><td> C    </td><td> ID da Filial                   </td></tr>
<tr><td> [06]    </td><td> C    </td><td> UF da Filial                   </td></tr>
<tr><td> [07]    </td><td> C    </td><td> Codigo Municipio IBGE          </td></tr>
</table>
/*/
#Include 'Protheus.ch'

User Function SYNCENV(aParam,cLayout,cPeriod)
	
	Local	aRet		:=	Array(20)
	Local	aFiliais	:=	{}
	Local	aAreaSM0	:=	{}
	
	aRet[1]	:=	aParam[1]
	aRet[2]	:=	aParam[2]
	aRet[3]	:=	aParam[3]
	aRet[4]	:=	aParam[4]
	aRet[5]	:=	cLayout
	aRet[6]	:=	.F.
	
	If aRet[6] := RpcSetEnv(aParam[1],aParam[2])
		RpcSetType(3)
		
		DbSelectArea('SM0')
		DbSetOrder(1)
		
		IF aRet[6] := DbSeek(aParam[1])
			
			Do While .Not. EOF() .And. SM0->M0_CODIGO == aParam[1]
				
				aAreaSM0 := GetArea()
				
				DbSelectArea('ZB2')
				DbSetOrder(1)
				
				If aRet[6] := DbSeek(xFilial('ZB2') + SM0->M0_CODFIL)
					
					aAdd(aFiliais,{;
						SM0->M0_CODFIL,;
						SM0->M0_CGC,;
						ZB2->ZB2_SFCNPJ,;
						ZB2->ZB2_PFPROD,;
						ZB2->ZB2_IDFIL,;
						SM0->M0_ESTENT,;
						SM0->M0_CODMUN;
						})
					
				End If
				
				RestArea(aAreaSM0)
				
				DbSkip()
				
			End Do
			
			aRet[7]	:=	aFiliais
			
			DbSelectArea('ZB1')
			DbSetOrder(1)
			
			If aRet[6] := DbSeek(xFilial('ZB1') + cLayout)
				
				aRet[08]	:=	cPeriod
				
				If aRet[08] == 'D'
					
					aRet[09]	:=	DtoS(ZB1->ZB1_REFER)
					
				ElseIf aRet[08] == 'M'
					
					aRet[09]	:=	PadL(Year(ZB1->ZB1_REFER),4,'0') + PadL(Month(ZB1->ZB1_REFER),2,'0')
					
				End IF
				
				aRet[10]	:=	ZB1->ZB1_LSTFIL
				aRet[11]	:=	ZB1->ZB1_FTP
				aRet[12]	:=	ZB1->ZB1_LOGIN
				aRet[13]	:=	ZB1->ZB1_SENHA
				aRet[14]	:=	ZB1->ZB1_PASTA
				aRet[15]	:=	ZB1->ZB1_EMAIL
				aRet[16]	:=	ZB1->ZB1_NUMSEQ
				aRet[17]	:=	ZB1->ZB1_DESCR
				aRet[18]	:=	ZB1->ZB1_PORTA
				aRet[19]	:=	ZB1->ZB1_CODIGO
				aret[20]	:=	ZB1->ZB1_NUMARM
				
			End If
			
		End IF
		
	End IF
	
Return aRet

